package co.codewizards.cloudstore.core.oio;
import static co.codewizards.cloudstore.core.util.AssertUtil.*;
import java.io.IOException;
import java.net.URI;
/**
* @author Sebastian Schefczyk
*
*/
public class OioFileFactory {
public static final String FILE_SEPARATOR = java.io.File.separator;
public static final char FILE_SEPARATOR_CHAR = java.io.File.separatorChar;
/** Factory method, substitutes the constructor of {@link java.io.File}. */
public static File createFile(final String pathname) {
return OioRegistry.getInstance().getFileFactory().createFile(pathname);
}
/** Factory method, substitutes the constructor of {@link java.io.File}. */
public static File createFile(final String parent, final String ... children) {
assertNotNull(parent, "parent");
final FileFactory fileFactory = OioRegistry.getInstance().getFileFactory();
File result = null;
if (children != null) {
for (final String child : children) {
if (result == null)
result = fileFactory.createFile(parent, child);
else
result = fileFactory.createFile(result, child);
}
}
if (result == null)
result = createFile(parent);
return result;
}
/** Factory method, substitutes the constructor of {@link java.io.File}. */
public static File createFile(final File parent, final String ... children) {
assertNotNull(parent, "parent");
final FileFactory fileFactory = OioRegistry.getInstance().getFileFactory();
File result = parent;
if (children != null) {
for (final String child : children)
result = fileFactory.createFile(result, child);
}
return result;
}
/** Factory method, substitutes the constructor of {@link java.io.File}. */
public static File createFile(final java.io.File file) {
return OioRegistry.getInstance().getFileFactory().createFile(file);
}
/** Factory method, substitutes the constructor of {@link java.io.File}. */
public static File createFile(final URI uri) {
return OioRegistry.getInstance().getFileFactory().createFile(uri);
}
/** Creates a temporary directory. */
public static File createTempDirectory(final String prefix) throws IOException {
return OioRegistry.getInstance().getFileFactory().createTempDirectory(prefix);
}
/** Creates a temporary file. */
public static File createTempFile(final String prefix, final String suffix) throws IOException {
return OioRegistry.getInstance().getFileFactory().createTempFile(prefix, suffix);
}
/** Creates a temporary file within specified parent directory. */
public static File createTempFile(final String prefix, final String suffix, final File dir) throws IOException {
return OioRegistry.getInstance().getFileFactory().createTempFile(prefix, suffix, dir);
}
/**
* Lists the file system roots (wraps {@link java.io.File#listRoots()}).
* @return the file system roots. Never <code>null</code>.
*/
public static File[] listRootFiles() {
return OioRegistry.getInstance().getFileFactory().listRootFiles();
}
}